package com.yunkeji.common.enums.app;

import com.yunkeji.common.exception.AppServiceException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Optional;

@Getter
@AllArgsConstructor
public enum CallCancelType {
    // 1：未接通主叫挂断 2：未接通被叫挂断 3：接听超时 4：被叫忙 5：未接通系统挂断 6：已接通主叫挂断 7：已接通被叫挂断 8：已接通系统挂断
    未接通主叫挂断(1),
    未接通被叫挂断(2),
    接听超时(3),
    被叫忙(4),
    未接通系统挂断(5),
    已接通主叫挂断(6),
    已接通被叫挂断(7),
    已接通系统挂断(8);
    private final Integer code;

    public static CallCancelType getByCode(Integer code) {
        CallCancelType[] values = CallCancelType.values();
        Optional<CallCancelType> first =
                Arrays.stream(values).filter(item -> item.getCode().equals(code)).findFirst();
        if (first.isPresent()) {
            return first.get();
        } else {
            throw AppServiceException.paramException("挂断状态异常");
        }
    }
}
